package cn.wolfcode.car.business.service;

import cn.wolfcode.car.business.domain.ServiceItem;
import cn.wolfcode.car.business.query.ServiceItemQuery;
import cn.wolfcode.car.common.base.page.TablePageInfo;

import java.util.List;

public interface IServiceItemService {
    /**
     * 分页
     * @param qo
     * @return
     */
    TablePageInfo< ServiceItem > query(ServiceItemQuery qo);


    /**
     * 查单个
     * @param id
     * @return
     */
    ServiceItem get(Long id);


    /**
     * 保存
     * @param serviceItem
     */
    void save(ServiceItem serviceItem);


    /**
     * 更新
     * @param serviceItem
     */
    void update(ServiceItem serviceItem);

    /**
     *  批量删除
     * @param ids
     */
    void deleteBatch(Long[] ids);

    /**
     * 查询全部
     * @return
     */
    List<ServiceItem> list();

    void saleOn(Long id);

    void saleOff(Long id);

    /**
     *
     * @param id 查询serviceItem信息
     *           合理化校验
     *           封装到CarPackageAudit对象中
     * @param bpmnInfoId 查询processdef定义key.获取流程定义
     * @param director 审核人
     *
     * @param finance 加入判断,他的值是根据流程限制来决定是否存在的
     */
    void startAudit(Long id, Long bpmnInfoId, Long director, Long finance ,String info);


}
